# -*- coding: utf-8 -*-
#autor 5312
#data 18 outubro de 2014
#obs.: Primeiro trabalho de pyton

import xlrd
import csv
import sqlite3

#criação das listas vazias
ano=[]
ipc_Global=[]
taxa_Inflacao=[]
remuneracao_Minima=[]
remuneracao_Maxima=[]
pib_Percapita=[]
rendimento_Nacional=[]
rendimento_Disponivel=[]
remuneracao_Percapita=[]


def readFile():
    #Leitura do ficheiro xls para cada coluna
    book = xlrd.open_workbook("IPC_Portugal_1977_2013.xls")
    sh = book.sheets()[0]

    for rownum in range(1,sh.nrows):
        yield sh.row_values(rownum)
        
    print "Ficheiro lido com sucesso!!!"
    
def saveList(book):
    #Guardar colunas do ficheiro para as listas
    
    for line in book:
        ano.append(line[1])
        ipc_Global.append(line[2])
        taxa_Inflacao.append(line[3])
        remuneracao_Minima.append(line[4])
        remuneracao_Maxima.append(line[5])
        pib_Percapita.append(line[6])
        rendimento_Nacional.append(line[7])
        rendimento_Disponivel.append(line[8])
        remuneracao_Percapita.append(line[9])
    
    print "Guardar listas do ficheiro com sucesso!!!"
    
def create_BD():
    #criação da bases dados e tabelas
    
    conn = sqlite3.connect('IPC_Portugal.db')
    cursor = conn.cursor()

    conn.execute(''' drop table if exists Dados ''')

    conn.execute(''' create table if not exists Dados(id integer primary key,
                                                                Ano integer not null,
                                                                Ipc_Global float not null,
                                                                Taxa_Inflacao float not null,
                                                                Remuneracao_Minima float not null,
                                                                Remuneracao_Maxima float not null,
                                                                Pib_Percapita float not null,
                                                                Rendimento_Nacional float not null,
                                                                Rendimento_Disponivel float not null,
                                                                Remuneracao_Percapita float not null)''')

    conn.commit()
    print "Base dados criado!!!"
    conn.close()

def insertData():
    #Ligação á base de dados e inserção das listas para a bases de dados
    
    conn = sqlite3.connect('IPC_Portugal.db')
    cursor = conn.cursor()

    for line in range(0, len(ano)):
        conn.execute('insert into Dados(Ano,Ipc_Global,Taxa_Inflacao,Remuneracao_Minima,Remuneracao_Maxima,Pib_Percapita,Rendimento_Nacional,Rendimento_Disponivel,Remuneracao_Percapita) values(?,?,?,?,?,?,?,?,?)',
                     (ano[line],ipc_Global[line],taxa_Inflacao[line],remuneracao_Minima[line],remuneracao_Maxima[line],pib_Percapita[line],rendimento_Nacional[line],rendimento_Disponivel[line],remuneracao_Percapita[line]))
    


    
    conn.commit()
    print "Dados inseridos com sucesso!!!"
    conn.close()
    

readFile()
saveList(readFile())
create_BD()
insertData()
